/**
 * 创建人:  @author huangpeng    
 * 创建时间:  2022年12月04日 10:27
 * 项目名称:  lemon-blog-cloud
 * 文件名称:  JsonLongDeserializer
 * 文件描述:  @Description: 将收到的字符串转成Long类型
 * 公司名称:  柠檬
 *
 * All rights Reserved, Designed By 柠檬 
 * @Copyright: 2022-2022
 *
 */
package com.lemon.common.core.serializer;

import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;

/**
 * 包名称：com.lemon.common.core.serializer
 * 类名称：JsonLongDeserializer
 * 类描述：将收到的字符串转成Long类型
 * 创建人：@author huangpeng
 * 创建时间：2022年12月04日 10:27
 */
public class JsonLongDeserializer extends JsonDeserializer<Long> {

    public static final Logger logger = LoggerFactory.getLogger(JsonLongSerializer.class);

    @Override
    public Long deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JacksonException {
        String value = jsonParser.getText();
        try {
            return value == null ? null : Long.parseLong(value);
        } catch (Exception e) {
            logger.error("数据转换异常，value={}", value, e);
            return null;
        }
    }

}
